The invention is related to the art of network interworking. The invention may find application wherever a network can include elements that communicate via different protocols. The invention will be explained in terms of different versions of a General Packet Radio Service (GPRS) tunneling protocol (GTP). However, the invention may find application wherever a first device can benefit from information regarding a protocol used by a second device.
There are currently two versions of the GPRS tunneling protocol (GTP). The two versions are known as GTPV0 and GTPV1. The tunneling protocols are not completely compatible. Therefore, procedures have been specified that allow a first network device or platform that supports one version to communicate with another device or platform that supports the other version. However, in order to interoperate with the second device or platform, the first platform must determine which version is supported by the second device. In order to make this determination, the 3rd Generation Partnership Project (3GPP in its technical specification 29.060) suggests that the first platform attempt to communicate with the second platform using the latest version (e.g., GTPV1). If that attempt fails, for example, due to an unreliable (i.e.; unacknowledged) nature of a transport protocol (e.g. UDP), the specification recommends trying to communicate with the second device using an older version (e.g., GTPV0). This procedure can introduce delays in a call setup procedure.
For example, each attempt to communicate is associated with a wait or response time. Each wait or response time can be on the order of 5 or 10 seconds. Generally, each attempt would be associated with several retries (e.g., 3). Therefore, GTP tunnel setup times of nearly a minute might not be uncommon.
The 3GPP specification (29.060) allows for GTP version caching. However, the specification does not specify or suggest a method for caching GTP versions.
One method of keeping track of the GTP versions supported by each platform in a network is to have a database manually updated each time a platform is added to the network and each time a network component is upgraded. However, such a method is time consuming, expensive, and prone to error.
Therefore, there is a desire for a method of automatically caching protocol versions so that tunnels can be set up without first making several attempts to set up a tunnel to a remote platform using an incompatible version or protocol.